//1.封装一个Vue的构造函数
function Vue(options) {
  //3.把options配置对象内的data,放在实例对象this的_data属性上
  this._data = options.data
  //4.进行数据代理 把_data中的属性取出来,一个个放在Vue实例上
  for (let key of Object.keys(this._data)) {
    Object.defineProperty(this, key, {
      get() {
        console.log("被读取了");
        return this._data[key]
      },
      set(newVal) {
        console.log("被设置了", newVal);
        this._data[key] = newVal
      }
    })
  }
}


//2.实例化Vue
const vm = new Vue({
  data: {
    count: 1,
    course: {
      type: "easy",
      name: "vue",
    },
  },
})
console.log(vm);